/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package epul.bdav;

import javax.persistence.EntityManager;

/**
 *
 * @author p0801698
 */
public class LivreDAOORM {
    private EntityManager em;

    /**
     * méthode persists : création d'un objet dans la base de données
     * méthode find (class, id) : récupération d'un objet dans la base de données à partir de son id
     * méthode remove : suppression d'un objet dans la base de données
     * @param em
     */
    public LivreDAOORM(EntityManager em){
         this.em=em;
     }

     public Membre createMembre(String nom, String email){
         Membre m = new Membre();
         m.setNom(nom);
         m.setEmail(email);
         em.persist(m);
         return m;
     }

     public Membre getMembre(int id){
         return em.find(Membre.class, id);
     }

     public Livre createLivre(String titre, Membre m){
         Livre l = new Livre();
         l.setTitre(titre);
         l.setEditeur(m);
         em.persist(l);
         return l;
     }

     public Livre getLivre(int id){
         return em.find(Livre.class, id);
     }

     public Partie createPartie(Livre livre, Partie inclu_dans, String titre, String contenu){
         Partie p = new Partie();
         p.setLivre(livre);
//         p.setInclus_dans(inclu_dans);
         p.setTitre(titre);
         p.setContenu(contenu);
         em.persist(p);
         return p;
     }

     public Partie getPartie(int id){
         return em.find(Partie.class, id);
     }

     public void supprimeLivre(int id){
         em.remove(this.getLivre(id));
     }

     public void supprimeMembre(int id){
         em.remove(this.getMembre(id));
     }

     public void supprimePartie(int id){
         em.remove(this.getPartie(id));
     }

     public void supprimeLivre(Livre l){
            em.remove(l);
     }

     public void supprimeMembre(Membre m){
            em.remove(m);
     }

     public void supprimePartie(Partie p){
            em.remove(p);
     }
}
